Here's a Python script to generate tokens: import webbrowser from urllib.parse import urlencode, urlparse, parse_qs import requests # Set up your Confluence OAuth App details CLIENT_ID = '...Paste the client ID ....' CLIENT_SECRET = '....paste client secret .............' REDIRECT_URI = 'https://us-west-2.console.aws.amazon.com/appflow/oauth' # Confluence OAuth endpoints AUTH_URL = 'https://auth.atlassian.com/authorize' TOKEN_URL = 'https://auth.atlassian.com/oauth/token' scope = [ "read:content:confluence", "read:content-details:confluence", "read:space-details:confluence", "read:audit-log:confluence", "read:page:confluence", "read:attachment:confluence", "read:blogpost:confluence", "read:custom-content:confluence", "read:comment:confluence", "read:template:confluence", "read:label:confluence", "read:watcher:confluence", "read:group:confluence", "read:relation:confluence", "read:user:confluence", "read:configuration:confluence", "read:space:confluence", "read:space.permission:confluence", "read:space.property:confluence", "read:user.property:confluence", "read:space.setting:confluence", "read:analytics.content:confluence", "read:content.permission:confluence", "read:content.property:confluence", "read:content.restriction:confluence", "read:content.metadata:confluence", "read:inlinetask:confluence", "read:task:confluence", "read:permission:confluence", "read:whiteboard:confluence", "read:database:confluence", "read:embed:confluence", "read:folder:confluence", "read:confluence-space.summary", "read:confluence-content.all", "offline_access" ] def get_authorization_code(): # Prepare the authorization URL params = { "audience": "api.atlassian.com", "client_id": CLIENT_ID, "scope": " ".join(scope), "redirect_uri": REDIRECT_URI, "response_type": "code", "prompt": "consent" } auth_url = f"{AUTH_URL}?{urlencode(params)}" # Open the authorization URL in the default web browser webbrowser.open(auth_url) # Prompt the user to enter the full redirect URL after authorization redirect_response = input("Paste the full redirect URL after authorization:\n") # Parse the authorization code from the redirect URL parsed_url = urlparse(redirect_response) auth_code = parse_qs(parsed_url.query)['code'][0] return auth_code def get_access_token(auth_code): # Prepare the token request payload payload = { 'grant_type': 'authorization_code', 'client_id': CLIENT_ID, 'client_secret': CLIENT_SECRET, 'code': auth_code, 'redirect_uri': REDIRECT_URI } # Make the token request response = requests.post(TOKEN_URL, json=payload, headers={'Content-Type': 'application/json'}) print(f"Response Status Code: {response.status_code}") token_response = response.json() print(f"Token Response: {token_response}") # Extract the access token and refresh token access_token = token_response.get('access_token') refresh_token = token_response.get('refresh_token') return access_token, refresh_token if __name__ == '__main__': authorization_code = get_authorization_code() print(f"Authorization Code: {authorization_code}") access_token, refresh_token = get_access_token(authorization_code) print(f"Access Token: {access_token}") print(f"Refresh Token: {refresh_token}")